package com.enjoyor.soa.traffic.api.service.dubbo.psms;

import java.util.List;

import com.enjoyor.soa.traffic.api.dto.psms.PostDeviceRltDto;
import com.enjoyor.soa.traffic.api.dto.psms.PostGroupDto;
import com.enjoyor.soa.traffic.api.dto.psms.PostGroupRltDto;
import com.enjoyor.soa.traffic.api.dto.psms.PostInfoDto;
import com.enjoyor.soa.traffic.api.dto.psms.PostPlanDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * @ClassName: DubboPostInfoService
 * @Description: TODO(这里用一句话描述这个类的作用)
 * @author yrch 961774545@qq.com
 * @date 2017年10月12日 下午3:04:04
 */
public interface DubboPostInfoService {

	/**
	 * 添加岗位信息
	 * 
	 * @param systemKey
	 *            系统秘钥
	 * @param token
	 * @param record
	 *            实体对象
	 * @param user
	 * @param ip
	 * @param sysName
	 * @return
	 */
	public ResultPojo savePostInfo(String systemKey, String token, PostInfoDto record, String user, String ip,
			String sysName);

	/**
	 * 查询岗位信息
	 * 
	 * @param postId
	 *            岗位编号
	 * @param postName
	 *            岗位名称
	 * @param deptId
	 *            所属部门名称
	 * @param typeCode
	 *            岗位类型编号
	 * @param postModel
	 *            岗位方式编号
	 * @param postAvaiale
	 *            是否启用，启用为1，废弃为0
	 * @param status
	 *            岗位状态
	 * @return
	 */
	public ResultPojo listPostInfo(String systemKey, String token, String postId, String postName, String deptId,
			String typeCode, String postModel, String postAvaiale, String status);

	/**
	 * 更新岗位信息
	 * 
	 * @param postInfo
	 * @param user
	 * @param ip
	 * @param sysName
	 * @return
	 */
	public ResultPojo modifyPostInfo(String systemKey, String token, PostInfoDto postInfoDto, String user, String ip,
			String sysName);

	/**
	 * 删除岗位信息
	 * 
	 * @param postId
	 * @param user
	 * @param ip
	 * @param sysName
	 * @return
	 */
	public ResultPojo removePostInfo(String systemKey, String token, String postId, String user, String ip,
			String sysName);

	/**
	 * 更新岗位启用状态
	 * 
	 * @param postId
	 * @param postAvaiable
	 * @param user
	 * @param ip
	 * @param sysName
	 * @return
	 */
	public ResultPojo modifyPostUsingStatus(String systemKey, String token, String postId, String postAvaiable,
			String user, String ip, String sysName);

	/**
	 * 更行岗位状态
	 * 
	 * @param postId
	 * @param status
	 * @param user
	 * @param ip
	 * @param sysName
	 * @return
	 */
	public ResultPojo modifyPostStatus(String systemKey, String token, String postId, String status, String user,
			String ip, String sysName);

	/**
	 * 添加岗位执勤时间
	 * 
	 * @param postPlan
	 * @param user
	 * @param ip
	 * @param sysName
	 * @return
	 */
	public ResultPojo saveListPostPlan(String systemKey, String token, List<PostPlanDto> postPlan, String user,
			String ip, String sysName);

	/**
	 * 获取岗位执勤时间
	 * 
	 * @param planId
	 * @param postId
	 * @return
	 */
	public ResultPojo listPostPlan(String systemKey, String token, String planId, String postId);

	/**
	 * 删除
	 * 
	 * @param planId
	 * @param user
	 * @param ip
	 * @param sysName
	 * @return
	 */
	public ResultPojo removePostPlan(String systemKey, String token, String planId, String postId, String user,
			String ip, String sysName);

	@SuppressWarnings("rawtypes")
	public ResultPojo pagePostInfo(String systemKey, String token, String postId, String postName, String deptId,
			String typeCode, String postModel, String postAvaiale, String status, Page page);

	// 岗位分组：
	public ResultPojo removePostGroup(String systemKey, String token, String postGroupId, String user, String ip,
			String sysName);

	public ResultPojo savePostGroup(String systemKey, String token, PostGroupDto postGroupDto, String user, String ip,
			String sysName);

	public ResultPojo listPostGroup(String systemKey, String token, String postGroupId, String postGroupName,
			String postGroupAvailable);

	@SuppressWarnings("rawtypes")
	public ResultPojo pagePostGroup(String systemKey, String token, String postGroupId, String postGroupName,
			String postGroupAvailable, String groupTypeCode, Page page);

	public ResultPojo modifyPostGroup(String systemKey, String token, PostGroupDto postGroupDto, String user, String ip,
			String sysName);

	// postGroupRlt

	public ResultPojo removePostGroupRlt(String systemKey, String token, String id, String postGroupId, String user,
			String ip, String sysName);

	public ResultPojo saveListPostGroupRlt(String systemKey, String token, List<PostGroupRltDto> listPostGroupRltDto,
			String user, String ip, String sysName);

	public ResultPojo listPostGroupRlt(String systemKey, String token, String id, String postGroupId);

	public ResultPojo modifyPostGroupRlt(String systemKey, String token, PostGroupRltDto postGroupRltDto, String user,
			String ip, String sysName);

	// 岗位管理设备
	public ResultPojo removePostDeviceRlt(String systemKey, String token, String id, String postId, String deviceId,
			String deviceName, String user, String ip, String sysName);

	public ResultPojo saveListPostDeviceRlt(String systemKey, String token, List<PostDeviceRltDto> listPostDeviceRltDto,
			String user, String ip, String sysName);

	public ResultPojo listPostDeviceRlt(String systemKey, String token, String id, String postId, String deviceId,
			String deviceName);

	public ResultPojo modifyPostDeviceRlt(String systemKey, String token, PostDeviceRltDto postDeviceRltDto,
			String user, String ip, String sysName);

	public ResultPojo startStopPostGroup(String systemKey, String token, String postGroupId, String postGroupAvailable,
			String user, String ip, String sysName);
}
